See "Dumping the New World Rom" in ROM B&W G3 folder.


0 > 'rom-real . fff00000  ok
0 > 'rom-virt . ff000000  ok
0 > rom-size . 100000  ok
0 > dev /rom/boot-rom  ok
0 > .properties 
name                    boot-rom
reg                     fff00000  00100000 
write-characteristic    flash
model                   Apple PowerMac11,2 5.2.7f1 BootROM built on 09/30/05 at 15:31:03
BootROM-version         $0005.27f1
BootROM-build-date      09/30/05 at 15:31:03
security-modes          none, full, command, no-password
info                    fff00000 00003f00 000527f1 20050930 f64cfc26 fff08000 
                        00078001 000527f1 20050930 beca915e fff80000 00080002 
                        000527f1 20050930 eeec8109 fff03f00 00000083 000527f1 
                        20050930 4a455557 fff03f80 00000084 fca9ec29 15a82001 
                        ffffffff fff04000 00004005 6e767261 6d000000 00000000 
                        00000000 00000000 00000000 00000000 00000000 
has-config-block        
hwi-flags               48ffda7e 
image                   00080000 
 ok
0 > see build-info-prop 


: build-info-prop
	'rom-real 'rom-virt rom-size _i_g do-map
	0 0 encode-bytes ( data-addr data-len -- prop-addr prop-len )			\	prop-addr prop-len
	0 																		\	prop-addr prop-len index
	begin 
		dup 8 * 28 + 'rom-virt + dup @ "Copy"<> 							\	prop-addr prop-len index curRom=index*8*0x28+romvirt curRom^<>"Copy"
		while 																\	prop-addr prop-len index curRom
			swap >r >r r@ @ 'rom-real +										\	prop-addr prop-len curRom^+romreal -- curRom index
			encode-int+														\	prop-addr prop-len -- curRom index
			r> dup @ 'rom-virt + swap 4 + @ ?dup if							\	prop-addr prop-len curRom^+romvirt size=(curRom+4)^ size>0? -- index
				dup r@ + -rot >r >r											\	prop-addr prop-len size+index -- curRom^+romvirt size index
				encode-int+													\	prop-addr prop-len -- curRom^+romvirt size index
				r@ 4 + @													\	prop-addr prop-len version=(curRom^+romvirt+4)^ -- curRom^+romvirt size index
				encode-int+													\	prop-addr prop-len -- curRom^+romvirt size index
				r@ 8 + @													\	prop-addr prop-len date=(curRom^+romvirt+8)^ -- curRom^+romvirt size index
				encode-int+													\	prop-addr prop-len -- curRom^+romvirt size index
				r> r> 4 - + @												\	prop-addr prop-len checksum=(curRom^+romvirt+size-4)^ -- index
				encode-int+													\	prop-addr prop-len -- index
			else 
				drop 0
				encode-int+													\	prop-addr prop-len 0 -- index
				0 encode-int+												\	prop-addr prop-len -- index
				0 encode-int+												\	prop-addr prop-len -- index
				0 encode-int+												\	prop-addr prop-len -- index
			then 
			r> char+ 														\	prop-addr prop-len index++
	repeat
	2drop																	\	prop-addr prop-len
	" info" property
	'rom-virt rom-size do-unmap
	;


info

index
	realaddress
			 size+index
			 		  version (5.2.7f1)
			 		           date (2005/09/30)
			 		                    checksum
			 		                    
0)	fff00000 00003f00 000527f1 20050930 f64cfc26
1)	fff08000 00078001 000527f1 20050930 beca915e
2)	fff80000 00080002 000527f1 20050930 eeec8109
3)	fff03f00 00000083 000527f1 20050930 4a455557
4)	fff03f80 00000084 fca9ec29 15a82001 ffffffff
5)	fff04000 00004005 6e767261 6d000000 00000000 
	00000000 00000000 00000000 00000000 00000000 


ordered by realaddress:
0)	fff00000 00003f00 000527f1 20050930 f64cfc26
3)	fff03f00 00000083 000527f1 20050930 4a455557
4)	fff03f80 00000084 fca9ec29 15a82001 ffffffff
5)	fff04000 00004005 n v r a  m        00000000 
1)	fff08000 00078001 000527f1 20050930 beca915e
2)	fff80000 00080002 000527f1 20050930 eeec8109
	00000000 00000000 00000000 00000000 00000000 
